<?php
// +----------------------------------------------------------------------
// | Author: 发仔 <i@fazi.me> 
// +----------------------------------------------------------------------

namespace app\api\controller;

use think\Controller;
use think\Db;

/**
 * @name【自定义查询数据】
 * @baseurl【Passenger】
 * @File【Custom.php】
 */
class Custom extends Base
{
	
	/**
     * @name【自定义表和字段查询】
     * @desc【自定义表和字段查询】
     * @uri【get_table_field】
     * @method【post,get】
     * @param【
     * table $ str $ ['used'：用车表;'order'=>'订单表'] $ 表名 #
     * field $ str $ * $ 要查询的字段，默认全部#
     * querykey $ str $ field_name $ 查询条件的参数 $ 1 #
     * queryvalue $ str $ field_value $ 查询条件的参数的值 $ 1
     * 】
     * @return【
     * code $ int $ number|1-1 $ 标识1-成功 0-失败#
     * msg $ string $  $ code=0，错误信息#
     * data $ string $ $ 包含字段的数据 $[]
     * 】
     */
	public function get_table_field($table='order',$field='*',$querykey,$queryvalue,$multidata=0) {
		
		$table     = input('table','order');
		$field     = $field ?: input('param.field/s','*');
		$querykey  = $querykey?: input('param.querykey/s');
		$queryvalue= $queryvalue ?: input('param.queryvalue');
		$multidata = $multidata ?: input('param.multidata');

		$tables = [
			'use' => 'car_use',
			'order' => 'order',
		];
		$table = $tables[$table];
		if(!$table) {
			return $this->apiout(0,'','无此表。');
		}
		$query = Db::name($table)->where($querykey,$queryvalue)->field($field);
		if($multidata) {
			$data = $query->select();
		} else {
			$data = $query->find();
		}
		return $this->retSucc(['data'=>$data]);
		//return $this->apiout($data,$data,'查询错误');
	}
	
	/**
     * @name【订单号查询对应字段】
     * @desc【订单号查询对应字段】
     * @uri【get_order_field】
     * @method【post】
     * @param【
     * order_no $ str $ PXXXXX $ 订单编号#
     * field $ str $ *\order_state $ 要查询的字段，默认全部
     * 】
     * @return【
     * code $ int $ number|1-1 $ 标识1-成功 0-失败#
     * msg $ string $  $ code=0，错误信息#
     * data $ string $ $ 包含字段的数据 $[]
     * 】
     */
    
    public function get_order_field() {
		
		$order_no = input('param.order_no/s');
		$field    = input('param.field/s','*');
		$hasfee   = input('param.hasfee/d',0);
		
		if(empty($order_no)) {
			return $this->error('订单号错误');
		}
		$query = Db::name('order');
		if($hasfee) {
			$query->alias('o')->join('order_fee of','of.order_id = o.order_id');
		}
		$data = $query->whereLike('order_no', $order_no)->field($field)->fetchSql(0)->find();
        return $this->retSucc(['data'=>$data]);
		// return $this->apiout($data,$data,'无数据');
	}

}